Repository navigation
chore: upgrade to Expo SDK 58 (RN 0.88, React 19.3) - #270
Open
trevor-coleman wants to merge 3 commits into
Open
trevor-coleman wants to merge 3 commits into
trevor-coleman wants to merge 3 commits into
Conversation
BREAKING CHANGE: modules now require Expo SDK 58. iOS deployment target (16.4) and Android compileSdk (36) / minSdk (24) are unchanged. Dependencies - Bump expo to ^58 (root, ExampleApp, packages/tsconfig) - Align RN-ecosystem deps to SDK 58 bundled versions (RN 0.88.1, react/react-dom 19.3.0, reanimated 4.7.1, worklets 0.13.0, gesture-handler 3.3.0, screens 4.30.0, safe-area 5.10.1, expo-* 58.x) - Normalize all 6 modules to expo-modules-core ~58.0.28; jest-expo ~58.0.13 - Bump to Jest 30 and TypeScript 6 (expected by expo-doctor for SDK 58) - Pin @react-native/babel-preset 0.88.1 in core: expo-module-scripts 3.x hoists babel-preset 0.74, which can't parse RN 0.88's Flow syntax in tests Config - TS 6: set explicit rootDir in module tsconfigs, declare jest types in the shared bases (TS 6 no longer auto-includes @types), drop deprecated baseUrl from ExampleApp - ExampleApp tsconfig uses bundler module resolution (reanimated 4.7 ships ESM-only types) - ExampleApp: use RN 0.88 ScrollViewInstance/TextInputInstance ref types; remove jsEngine from app.json (rejected by SDK 58 config schema) - Node 20 -> 22 in CI and .tool-versions (RN 0.88 requires >= 22.13) - Update committed yarn zero-install cache - Add major-bump changeset
- Add SDK 58 compatibility row and current requirements (iOS 16.4, Android minSdk 24 / compileSdk 36) to README and the docs landing page - Add Node 22.13+ / Corepack Yarn prerequisites to the quickstart and running-the-example-app guides - Replace nonexistent `yarn prebuild` with `npx expo prebuild`; fix step numbering, ExampleApp paths, and the iOS simulator explanation - EAS workflow docs: lint/build/test now run in GitHub Actions, not CircleCI
🦋 Changeset detectedLatest commit: e9be5b0 The changes in this PR will be included in the next version bump. This PR includes changesets to release 6 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
- RN 0.88 / SDK 58 Expo libraries require compileSdk 37 (AAR metadata check failed the EAS Android build). Bump ExampleApp expo-build-properties compileSdkVersion 36 -> 37 and module gradle fallbacks (compileSdk 37, Kotlin 2.2.0) to match RN 0.88 defaults. targetSdk stays 36. - Escape `<=` in the docs compatibility table; MDX parsed it as JSX and broke the Docusaurus build. - Correct compileSdk in README, docs and changeset.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades the repo from Expo SDK 56 to SDK 58 (React Native 0.88.1, React 19.3.0) — the latest stable SDK — and updates the docs to match.
Breaking: all 6 modules get a major bump (changeset included) and now require Expo SDK 58. iOS deployment target (16.4) and Android minSdk (24) are unchanged; Android compileSdk is raised 36 → 37 (required by RN 0.88 / SDK 58 Expo libraries). targetSdk stays 36.
Dependencies
expo→ ^58; RN-ecosystem deps aligned to SDK 58 bundled versions (RN 0.88.1, reanimated 4.7.1, worklets 0.13.0, gesture-handler 3.3.0 (major), screens 4.30.0, safe-area 5.10.1,expo-*58.x)expo-modules-core~58.0.28;jest-expo~58.0.13expo-doctorfor SDK 58)expo-modules-coreAPIs (e.g.hostingRuntimeContext,errorManager,screenScale) are used by the modules' native codeFixes needed for the bump
rootDirin module tsconfigs;jesttypes declared in the shared tsconfig bases (TS 6 no longer auto-includes@types/*); deprecatedbaseUrlremoved from ExampleAppScrollViewInstance/TextInputInstanceref types; removedjsEnginefromapp.json(rejected by the SDK 58 schema)@react-native/babel-preset@0.88.1—expo-module-scripts@3.xhoists babel-preset 0.74, which can't parse RN 0.88's Flow syntaxexpo-build-propertiesand module gradle fallbacks (Kotlin fallback 2.1.20 → 2.2.0), matching RN 0.88 defaults.tool-versions(RN 0.88 requires Node ≥ 22.13)Docs
yarn prebuildwithnpx expo prebuild; fixed step numbering, paths, and the iOS simulator note; EAS workflow docs now point at GitHub Actions instead of CircleCINot in this PR
expo-module-scriptsstays on 3.x — its newest release is 56.0.8 (no SDK 58 version yet), so moving to it is a separate change.Verification
yarn ci:build,yarn test(all suites: core 40/40, ExampleApp 7/7, modules 2/2 each),yarn ci:lint— passtsc --noEmit— cleanexpo-doctor— 20/20 checks passexpo exportfor iOS + Android — Metro/Hermes bundles build